package com.gome.han.bigdata.mr._009_combiner;

import java.io.IOException;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
/**
 * @author Hanpeng
 * @date 2020/12/1 14:34
 * @description:  这个Combiner可能会发生两次,一次为溢出的时候 先进行Combiner
 * 再进行分组排序
 * 第二次是多个溢写文件进行归并排序的时候。在进行归并排序的之前 执行Combiner
 *
 */
public class WordcountCombiner extends Reducer<Text, IntWritable, Text	, IntWritable>{
	
	IntWritable v = new IntWritable();

	@Override
	protected void reduce(Text key, Iterable<IntWritable> values,
			Context context) throws IOException, InterruptedException {
		int sum = 0;
		// 1 累加求和
		for (IntWritable value : values) {
			sum += value.get();
		}
		v.set(sum);
		// 2 写出
		context.write(key, v);
	}
}
